package com.herui.iot.data.user.source;

import com.herui.sdyu_lib.http.callback.Callback;
import com.herui.sport_care.data.user.Gender;
import com.herui.sport_care.data.user.UserInfo;

/**
 * Created by amanda.shan on 2021/9/30.
 */
public interface UserSource {

    void login(String account, String password, Callback.CommonCallback<UserInfo> callback);

    String getToken();

    UserInfo getUserInfo();

    void verify(Callback.CommonCallback<String> callback);

    /**
     * | 属性     | 类型          | 是否必传 | 含义                           |
     * | -------- | ------------- | :------: | ------------------------------ |
     * | userId   | Long          |    是    | 用户id                         |
     * | name     | String        |    否    | 用户姓名：修改后的姓名         |
     * | birthday | String        |    否    | 用户出生年月    例：2022-10-28 |
     * | gender   | <u>Gender</u> |    否    | 用户性别，详细含义见下方       |
     */
    void modifyUserInfo(String name, String birthday, Gender gender,
                        Callback.CommonCallback<String> callback);

    /**
     * 获取手机验证码
     * @param mobile
     * @param callback
     */
    void getCode(String mobile, Callback.CommonCallback<String> callback);

    /**
     * 修改手机号
     * @param mobile
     * @param code
     * @param callback
     */
    void modifyPhone(String mobile, String code,
                     Callback.CommonCallback<String> callback);

    /**
     * 修改密码
     * @param password          修改后的密码
     * @param formerPassword    原密码
     * @param callback
     */
    void changePassword(String password, String formerPassword,
                        Callback.CommonCallback<String> callback);

    /**
     * 登出
     * @param callback
     */
    void loginOut(Callback.CommonCallback<String> callback);
}

